package com.sdtv.basemodule.config;

import android.app.Application;

import com.billy.android.loading.Gloading;
import com.sdtv.basemodule.http.interceptors.ExceptionInterceptor;
import com.sdtv.basemodule.http.interceptors.HeaderInteceptor;
import com.sdtv.basemodule.http.interceptors.ParamInterceptor;
import com.sdtv.basemodule.image.ImageConfig;
import com.sdtv.basemodule.image.ImageLoaderInterface;
import com.sdtv.basemodule.rx.errorhandler.ResponseErrorListener;

/**
 * @ProjectName: MediunFusion
 * @Package: com.sdtv.basemodule.config
 * @ClassName: AppConfigDelegate
 * @Description: j该接口配置了应用配置的基本信息
 * @Author: 小郭同学
 * @CreateDate: 2019-06-21 15:03
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public interface AppConfigDelegate {

    /**
     * 请求头处理
     *
     * @return
     */
    HeaderInteceptor getHeaderInterceptor();

    /**
     * 公共参数处理
     *
     * @return
     */
    ParamInterceptor getParamInterceptor();

    /**
     * 设置异常处理拦截
     * (主要是针对业务逻辑)
     *
     * @return
     */
    ExceptionInterceptor getExceptionInterceptor();

    /**
     * 异常处理
     * 主要是服务器异常处理
     *
     * @return
     */
    ResponseErrorListener getResponseErrorListener();

    /**
     * 统一状态处理
     *
     * @return
     */
    Gloading.Adapter getGloadingAdapter();

    /**
     * 设置上下文
     *
     * @return
     */
    Application getApplication();

    /**
     * 设置HTTP请求配置
     *
     * @return
     */
    AppHttpSetting getHttpSetting();

    /**
     * 设置APPSETTING配置
     *
     * @return
     */
    AppSetting getAppSetting();

    /**
     * 设置图片加载默认属性
     *
     * @return
     */
    ImageConfig getImageConfig();

    /**
     * 设置图片加载框架
     *
     * @return
     */
    ImageLoaderInterface getImageProcessor();

    /**
     * 设置状态栏颜色
     *
     * @return
     */
    int getStatusColor();


}
